package com.im.common.enums.command;

/**
 * 群组事件命令枚举
 */
public enum GroupEventCommand implements Command {

    JOIN_GROUP(2000, "推送申请入群通知"),
    ADDED_MEMBER(2001, "推送添加群成员，通知给所有管理员和本人"),
    CREATED_GROUP(2002, "推送创建群组通知，通知给所有人"),
    UPDATED_GROUP(2003, "推送更新群组通知，通知给所有人"),
    EXIT_GROUP(2004, "推送退出群组通知，通知给管理员和操作人"),
    UPDATED_MEMBER(2005, "推送修改群成员通知，通知给管理员和被操作人"),
    DELETED_MEMBER(2006, "推送删除群成员通知，通知给所有群成员和被踢人"),
    DESTROY_GROUP(2007, "推送解散群通知，通知所有人"),
    TRANSFER_GROUP(2008, "推送转让群主，通知所有人"),
    MUTE_GROUP(2009, "禁言群，通知所有人"),
    SPEAK_GOUP_MEMBER(2010, "禁言/解禁群成员，通知管理员和被操作人"),
    MSG_GROUP(0x838, "2104群聊消息收发"),
    MSG_GROUP_READED(0x83a, "2106发送消息已读"),
    MSG_GROUP_READED_NOTIFY(0x805, "2053消息已读通知给同步端"),
    MSG_GROUP_READED_RECEIPT(0x806, "2054消息已读回执，给原消息发送方"),
    GROUP_MSG_ACK(0x7ff, "2047群聊消息ack");

    private Integer command;
    private String desc;

    /**
     * 构造函数
     *
     * @param command 命令值
     * @param desc    命令描述
     */
    GroupEventCommand(int command, String desc) {
        this.command = command;
        this.desc = desc;
    }

    /**
     * 获取命令值
     *
     * @return 命令值
     */
    @Override
    public int getCommand() {
        return command;
    }

    /**
     * 获取命令描述
     *
     * @return 命令描述
     */
    public String getDesc() {
        return desc;
    }
}
